package com.ysd.product.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.ysd.common.entity.Img;
import com.ysd.common.entity.Product;
import com.ysd.common.entity.ProductEChart;
@Mapper
public interface ProductMapper {
	//多条件分页查询
	List<Product> findAllBySelAndPage(@Param("name")String name,@Param("f_pcid")int f_pcid,
			@Param("isxj")int isxj,@Param("isxss")int isxss,@Param("isxsg")int isxsg,
			@Param("page")int page,@Param("limit")int limit);
	//商品总条数
	int findProductTotal(@Param("name")String name,@Param("f_pcid")int f_pcid,
			@Param("isxj")int isxj,@Param("isxss")int isxss,@Param("isxsg")int isxsg,
			@Param("page")int page,@Param("limit")int limit);
	//保存
	int saveProduct(Product product);
	
	//修改
	int updateProduct(Product product);
	
	//删除
	int delProduct(@Param("id")int id);
	
	//修改商品是否推荐到首页
	int updateProductIsXss(@Param("isxss")int isxss,@Param("id")int id);
	
	//修改商品是否首页轮播图
	int updateProductIsXsg(@Param("isxsg")int isxsg,@Param("id")int id);
	
	//商品上架、下架
	int updateProductIsXj(@Param("isxj")int isxj,@Param("id")int id);
	
	//购物车中检索商品是否有效
	Product findProductById(@Param("id")int id);
	
	//前台推送上架商品，按照编号降序取前5条
	List<Product> findAllProByIndex();
	
	//前台推送热门商品，按照权重降序取前5条
	List<Product> findProBySellNum();
	
	//前台商品页面多条件分页商品展示
	List<Product> findAllProByProlist(@Param("f_pcid")int f_pcid,@Param("key")String key,
			@Param("page")int page,@Param("limit")int limit);
	
	//前台商品页面商品数量
	int findAllProByProlistTotal(int f_pcid,@Param("key")String key,
			@Param("page")int page,@Param("limit")int limit);
	//商品类型——所属类型商品数量统计
	List<ProductEChart> findProCateEChart();
	
	//前台商品详情
	Product findProById(@Param("id")int id);
	
	//查询商品图片
	List<Img> findAllImgByPId(@Param("id")int id);
	
	//批量添加商品图片
	int addProImgs(Img imgs);
	
	//删除商品图片
	int delProImg(@Param("id")int id);
	
	//商品畅销查询，按照销量降序取前5条
	List<Product> findProBySNum();
	
	//前台商品图片轮播
	List<Product> findAllProByIsxsg();

	//根据类型编号查询类型名称
	Product findProCateNameById(@Param("pcid")int pcid);

}
